Semiconductor memory devices, including flash memory, typically utilize memory cells to store data as an electrical value, such as an electrical charge or voltage. A flash memory cell, for example, includes a single transistor with a floating gate that is used to store a charge representative of a data value. Flash memory is a non-volatile data memory device that can be electrically erased and reprogrammed. More generally, non-volatile memory (e.g., flash memory, as well as other types of non-volatile memory implemented using any of a variety of technologies) retains stored information even when not powered, as opposed to volatile memory, which requires power to maintain the stored information.
One problem with flash memory is data loss that occurs as the result of various factors affecting flash memory. Such error-inducing factors include pseudo-random electrical fluctuations, defects in the storage medium, operating conditions, memory cell history (e.g., a count of the number of program-erase (P/E) cycles performed on the memory cell), suboptimal performance or design and/or degradation of write-read circuitry, or a combination of these and other factors.
In the embodiments described below, an improved method for protecting data and recovering erroneous data stored in non-volatile memory devices is provided.